format 8 
factor on 


* Functions & variables part:
var REr1 r1/mu1
var REr2 r2/mu2
func Qlen1() 
#(buf1)+(#(Er_token1)+#(Er_stage1))/r1

end
func Earrival() 
if (#(mmpp_2)<> 0)
  bind ret_val lambda21
else
  bind ret_val lambda22
end

if (#(Er_token1)==1)
  bind ret_val ret_val+r1/mu1
end

ret_val

end
func Qlen2() 
#(buf2)+(#(Er_token2)+#(Er_stage2))/r1

end
func ELR() 
if ((Qlen2()+e)>=K2)
  if (#(mmpp_2)<>0)
    bind ret_val lambda21
  else
    bind ret_val lambda22
  end

  if (#(Er_token1)==1)
    bind ret_val ret_val+r1/mu1
  end
  ret_val
else
  0
end

end
func PFull() 
if (Qlen2()+e)>=K2
  1.0
else
  0
end

end
func gar2() 
if (Qlen2()+e)<K2
  1
else
  0
end

end
func gar1() 
if ((Qlen1()+e)<K1)
  1
else
  0
end

end
func Rar1() 
if (#(mmpp_1)>0)
  lambda11
else
  lambda12
end

end
func Rar2() 
if (#(mmpp_2)>0)
  lambda21
else
  lambda22
end

end
func dep12() 
if ((K2-Qlen2()+e)<1)
  0
else
  1
end

end

bind 
a1   0.0269163
a2   0.0269163
b1   0.00672908
b2   0.00672908
lambda11   1.5058
lambda21   1.5058
lambda12   0.00301161
lambda22   0.00301161
r1   5
r2   5
mu1   2.73
mu2   2.73
K1   16
K2   16
e   0.0001
end


srn model1 
  * == PLACE == 
  mmpp_1 1
  mmpp_2 1
  Er_stage1 0
  buf1 0
  Er_token1 0
  buf2 0
  Er_token2 0
  Er_stage2 0
  end
  * == Timed Transitions == 
  t2_1 ind b1 
  t1_1 ind a1 
  t2_2 ind b2 
  t1_2 ind a2 
  tar1 gendep Rar1() guard gar1() 
  Er_trans1 ind REr1 
  tar2 gendep Rar2() guard gar2() 
  Er_trans2 ind REr2 
  end
  * == Immediate Transitions ==  
  Er_in1 ind 1. priority 20 
  Er_out1 ind 1. priority 20 
  Er_in2 ind 1. priority 20 
  Er_out2 ind 1. priority 20 
  end
  * == ARC == 
  * Input Arcs 
  mmpp_1 t1_1 1
  buf1 Er_in1 1
  Er_token1 Er_trans1 1
  Er_stage1 Er_out1 r1
  buf2 Er_in2 1
  Er_stage2 Er_out2 r2
  Er_token2 Er_trans2 1
  mmpp_2 t1_2 1
  end
  * Output Arcs 
  t2_1 mmpp_1 1
  tar1 buf1 1
  Er_in1 Er_token1 r1
  Er_trans1 Er_stage1 1
  t2_2 mmpp_2 1
  tar2 buf2 1
  Er_in2 Er_token2 r2
  Er_trans2 Er_stage2 1
  Er_out1 buf2 dep12() 
  end
  * Inhibtor Arcs 
  mmpp_1 t2_1 1
  Er_token1 Er_in1 1
  Er_stage1 Er_in1 1
  Er_token2 Er_in2 1
  Er_stage2 Er_in2 1
  mmpp_2 t2_2 1
end


echo *********************************************************************** 
echo *********  Outputs asked for the model: model1 ************** 

loop t, 10.0, 200.0, 10.0
expr srn exrt(t, model1; Qlen1)
*expr srn exrt(t, model1; Qlen2)

*expr srn exrt(t, model1; ELR)
*expr srn exrt(t, model1; PFull)
*expr srn exrt(t, model1; Earrival)
end
end



